import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// import { NavBar, Form, Field, Button, Tabbar, TabbarItem, Icon, Tab, Tabs, Cell, List, PullRefresh, ActionSheet, Popup, Row, Col, Badge, Search, Divider, CellGroup, Tag, Image, Dialog, DatetimePicker, Loading, Lazyload } from 'vant'
import directive from '@/utils/directive'
// 引入移动端适配插件
import 'amfe-flexible'

import hljs from 'highlight.js' // hljs对象
import 'highlight.js/styles/default.css' // 代码高亮的样式
import '@/utils/permission.js'
import './VantRegister'

Vue.use(directive)
// Vue.use(Form)
// Vue.use(Field)
// Vue.use(Button)
// Vue.use(NavBar)
// Vue.use(Tabbar)
// Vue.use(TabbarItem)
// Vue.use(Divider)
// Vue.use(Search)
// Vue.use(Badge)
// Vue.use(Row)
// Vue.use(Col)
// Vue.use(Popup)
// Vue.use(ActionSheet)
// Vue.use(PullRefresh)
// Vue.use(List)
// Vue.use(Cell)
// Vue.use(Tab)
// Vue.use(Tabs)
// Vue.use(Icon)
// Vue.use(CellGroup)
// Vue.use(Tag)
// Vue.use(Image)
// Vue.use(Dialog)
// Vue.use(DatetimePicker)
// Vue.use(Loading)
// Vue.use(Lazyload)

Vue.directive('highlight', function (el) { // 自定义一个代码高亮指令
  const highlight = el.querySelectorAll('pre, code') // 获取里面所有pre或者code标签
  highlight.forEach((block) => {
    hljs.highlightElement(block) // 突出显示这些标签(以及内部代码, 会自动识别语言)
  })
})

// 通过eslint插件 可以在编写代码的过程中实现eslint的规则校验
// 但是不使用eslint插件 在webpack打包过程中 进行格式化检验
// 建议大家使用eslint插件实现代码的格式化
// 1、保证在编辑器中
// 2、保证项目以根目录的方式打开
// 3、保证项目中有.eslintrc.js文件
// const a = function (abc) {
// }
// import { allChannelListAPI } from '@/api'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

// const myFn = async () => {
//   try {
//     await allChannelListAPI()
//   } catch (err) {
//     console.dir(err)
//   }
// }

// myFn()

if (process.env.NODE_ENV !== 'development') { // process是Node环境全部变量, 运行时根据敲击的命令不同, 脚手架会取环境变量给env添加属性和值
  console.log = function () {}
  console.error = function () {}
  console.dir = function () {}
}
